﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using R = Szamlazz.Data.Request;

namespace Szamlazz.Data
{ 
	/// <summary>
	/// Kibocsátói információ
	/// </summary>
	public class ProviderInfo : Validatable
	{
		/// <summary>
		/// Létrehozza a kéréshez tartozó XML kommunikációs objektumot
		/// </summary>
		/// <returns>A kommunikációs objektum</returns>
		internal R.eladoTipus CreateForRequest()
		{
			return new R.eladoTipus 
			{
				bank = this.BankAccountNumber,
				bankszamlaszam = this.Bank,
				alairoNeve = this.Signature,
				emailReplyto = this.EmailReplyTo,
				emailSzoveg = this.EmailMessage,
				emailTargy = this.EmailSubject
			};
		}

		/// <summary>
		/// Komponens neve loggoláskor
		/// </summary>
		internal override string Component
		{
			get { return "eladó"; }
		}

		/// <summary>
		/// Ellenőrzi a kötelező mezőket
		/// </summary>
		/// <returns></returns>
		internal override ValidationResult Validate()
		{
			var ret = base.Validate();

			ret.Evaluate(string.IsNullOrEmpty(this.BankAccountNumber), "bankszámlaszám", ValidationResult.ValidationReason.Required);

			return ret;
		}

		/// <summary>
		/// Bank neve
		/// </summary>
		public string Bank { get; set; }

		/// <summary>
		/// Bankszámla számla
		/// </summary>
		public string BankAccountNumber { get; set; }

		/// <summary>
		/// Válasz e-mail cím
		/// </summary>
		public string EmailReplyTo { get; set; }

		/// <summary>
		/// E-mail sablon tárgya
		/// </summary>
		public string EmailSubject { get; set; }

		/// <summary>
		/// E-mail sablon szövege
		/// </summary>
		public string EmailMessage { get; set; }

		/// <summary>
		/// Aláírás
		/// </summary>
		public string Signature { get; set; }
	}
}
